package com.ihg.hiex.entity.user;

import org.apache.commons.lang3.StringUtils;

import com.demo2do.core.utils.Alias;

/**
 * 
 * @author mohanlan
 *
 */
@Alias("Role")
public enum Role {
    
    ROOT("root", "超级管理员"),               // 超级管理员 admin端登录
    
    ADMIN("admin", "管理员"),                // HR管理员 admin端登录
    
    SUPERVISOR("supervisor", "外部管理员"),   // 外部管理员 admin端登录
    
    DELEGATE("delegate", "测评人员"),        // 测评人员 assessment端登录
    
    ASSESSOR("assessor", "被测评人员"),       // 被测评人员 assessment端登录
    
    FACILITATOR("facilitator", "主讲师"),    // 主讲师 admin端登录
    
    COACH("coach", "教练");                 // 教练 admin端登录
    
    private String alias;
    
    private String description;
    
    /**
     * 
     * @param alias
     * @param description
     */
    Role(String alias, String description) {
        this.alias = alias;
        this.description = description;
    }
    
    /**
     * 
     * @param name
     * @return
     */
    public static String nameOf(String name) {
        for(Role role : Role.values()) {
            if(StringUtils.equalsIgnoreCase(role.getAlias(), name)) {
                return role.name();
            }
        }
        return null;
    }
    
    /**
     * 
     * @param alias
     * @return
     */
    public static Role aliasOf(String alias) {
        for(Role role : Role.values()) {
            if(StringUtils.equalsIgnoreCase(role.getAlias(), alias)) {
                return role;
            }
        }
        return null;
    }
    
    /**
     * 
     * @return
     */
    public String getAlias() {
        return alias;
    }
    
    /**
     * 
     * @return
     */
    public String getDescription() {
        return description;
    }
}
